Method and apparatus of data authentication

ABSTRACT

Provided are apparatuses and methods of generating and verifying signature information for data authentication. A method of verifying signature information may involves receiving signature information with respect to a predetermined number of data segments from a transmitter, constructing a hash tree based on the signature information, and verifying a validity of the signature information, by verifying trapdoor hash values using a root hash value of the constructed hash tree.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application claims the benefit under 35 USC 119(a) of Korean Patent Application No. 10-2013-0076637 filed on Jul. 1, 2013, and Korean Patent Application No. 10-2013-0159806 filed on Dec. 20, 2013, in the Korean Intellectual Property Office, the entire disclosure of which is incorporated herein by reference for all purposes.

BACKGROUND

1. Field

The following description relates to a method and an apparatus of generating and verifying signature information for data authentication.

2. Description of Related Art

To ensure safe distribution of contents within a content centric network (CCN) environment, a content delivery network (CDN) environment, and/or a peer-to-peer (P2P) network environment, it is desirable to verify the authentication and integrity of contents that are being distributed. An electronic signature may be used to verify the authentication and integrity of contents. The electronic signature may be generated using a private key of a signatory, and may be verified using a public key of the signatory. However, because the generation and verification of electronic signature rely on mathematical algorithms, a significant computational load may be imposed on the transmitters and receivers.

SUMMARY

This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

In one general aspect, a method of generating signature information involves: constructing a hash tree with respect to a predetermined number of data segments; associating a root hash value of the hash tree with trapdoor hash values with respect to the data segments; and associating hash values of the hash tree and the trapdoor hash values with the data segments and transmitting the hash values of the hash tree and the trapdoor hash values to a receiver.

The hash tree may be a Merkle hash tree (MHT).

The hash values of the hash tree may be included in witness information, and the receiver may use the transmitted hash values of the hash tree in reconstructing the hash tree.

The hash values of the hash tree may include at least one hash value of the hash tree not associated directly with the data segments, in the constructed hash tree.

The number of the data segments, k, may have a value corresponding to a power of 2, and a number of hash values included in the hash tree may correspond to log₂ k.

The general aspect of the method may further involve buffering the data segments.

In another general aspect, a method of verifying signature information involves: receiving signature information with respect to a predetermined number of data segments from a transmitter; constructing a hash tree based on the signature information; and verifying a validity of the signature information, by verifying trapdoor hash values using a root hash value of the constructed hash tree.

The constructing of the hash tree may involve constructing a Merkle hash tree (MHT) using witness information included in the signature information.

The general aspect of the method may further involve storing at least one of the root hash value of the hash tree and a hash value of the hash tree included in the signature information in an authenticated hash table (AHT).

The verifying of the signature information may involve obtaining at least one of the hash value of the hash tree and the root hash value of the hash tree from signature information of subsequently received data segments; searching the AHT to verify whether at least one of the obtained hash value of the hash tree and the obtained root hash value of the hash tree is stored in the AHT; and in response to at least one of the obtained hash value of the hash tree and the obtained root hash value of the hash tree being stored in the AHT, determining that the signature information of the subsequently received data segments is valid.

The general aspect of the method may further involve: in response to neither the obtained hash value of the hash tree nor the obtained root hash value of the hash tree being stored in the AHT, storing, in the AHT, at least one of the hash value of the hash tree and the root hash value of the hash tree.

The witness information may include the hash value of the MHT.

In another general aspect, a non-transitory computer-readable medium may include a program for instructing a computer to perform a method described above.

In another general aspect, a data segment transmitter includes: a hash tree constructor configured to construct a hash tree with respect to a predetermined number of data segments, a trapdoor operation unit configured to associate a root hash value of the hash tree with trapdoor hash values with respect to the data segments, and a signature information generator configured to associate hash values of the hash tree and the trapdoor hash values with the data segments and to transmit the hash values of the hash tree and the trapdoor hash values to a receiver.

The hash tree may be a Merkle hash tree (MHT).

The hash values of the hash tree may be used for reconstructing the hash tree by the receiver, and the hash values may be included in witness information.

The hash values of the hash tree may include at least one hash value of the hash tree not associated directly with the data segments, in the constructed hash tree.

In another general aspect, a data segment receiver may include: a data receiving unit configured to receive signature information with respect to a predetermined number of data segments; a tree constructor configured to construct a hash tree based on the signature information; and a signature information verifier configured to verify a validity of the signature information, by verifying trapdoor hash values using a root hash value of the constructed hash tree.

The tree constructor may be configured to construct a Merkle hash tree (MHT) using witness information included in the signature information.

The signature information verifier may include an authenticated hash table (AHT) configured to record at least one of the root hash value of the hash tree and hash values of the hash tree included in the signature information.

The signature information verifier may be configured to obtain at least one of the hash values of the hash tree and the root hash value of the hash tree from signature information of subsequently received data segments, search the AHT to verify whether at least one of the obtained hash values of the hash tree and the obtained root hash value of the hash tree is stored in the AHT, and, in response to at least one of the obtained hash values of the hash tree and the obtained root hash value of the hash tree being stored in the AHT, determine that the signature information of the subsequently received data segments is valid.

The witness information may include a hash value of the MHT.

In another general aspect, an apparatus for data authentication includes: a data receiving unit configured to receive signature information with respect to a predetermined number of data segments, the signature information comprising information for constructing a hash tree associated with the data segments; a signature information verifier comprising an authenticated hash table (AHT) stored in a memory, in which the signature information verifier is configured to obtain a hash value or a root hash value associated with the signature information, and to search the AHT to verify whether either the obtained hash value or the obtained root hash value is stored in the AHT.

The signature information verifier may be configured to, in response to either the obtained hash value or the obtained root hash value being stored in the AHT, determine that the signature information of the data segments is valid, and, in response to neither the obtained hash value nor the obtained root hash value being stored in the AHT, store the obtained hash value or the obtained root hash value in the AHT.

The general aspect of the apparatus may be a user terminal or a networking device.

Other features and aspects will be apparent from the following detailed description, the drawings, and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating an example of a method of generating signature information based on a Merkle hash tree (MHT) according to a conventional art.

FIG. 2 is a diagram illustrating an example of a method of verifying a validity of signature information generated based on an MHT according to the present disclosure.

FIG. 3 is a flowchart illustrating an example of a method of generating signature information with respect to a data segment by a data segment transmitter.

FIG. 4 is a diagram illustrating an example of a general method of performing authentication based on a trapdoor hash function.

FIG. 5 is a diagram illustrating an example of a process of verifying signature information with respect to a data segment by a receiver.

FIG. 6 is a flowchart illustrating an example of a method of verifying signature information with respect to a data segment by a receiver.

FIG. 7 is a flowchart illustrating an example of a method of verifying a validity of signature information in the method of FIG. 6.

FIG. 8 is a diagram illustrating an example of transmitting four data segments using a method of generating and verifying signature information.

FIG. 9 is a diagram illustrating an example of transmitting eight data segments using a method of generating and verifying signature information.

FIG. 10 is a block diagram illustrating an example of a data segment transmitter.

FIG. 11 is a block diagram illustrating an example of a data segment receiver.

Throughout the drawings and the detailed description, unless otherwise described, the same drawing reference numerals will be understood to refer to the same elements, features, and structures. The drawings may not be to scale, and the relative size, proportions, and depiction of elements in the drawings may be exaggerated for clarity, illustration, and convenience.

DETAILED DESCRIPTION

The following detailed description is provided to assist the reader in gaining a comprehensive understanding of the methods, apparatuses, and/or systems described herein. Accordingly, various changes, modifications, and equivalents of the methods, apparatuses, and/or systems described herein will be suggested to those of ordinary skill in the art. The progression of processing steps and/or operations described is an example; however, the sequence of and/or operations is not limited to that set forth herein and may be changed as is known in the art, with the exception of steps and/or operations necessarily occurring in a certain order. Also, description of well-known functions and constructions may be omitted for increased clarity and conciseness.

The features described herein may be embodied in different forms, and are not to be construed as being limited to the examples described herein. Rather, the examples described herein have been provided so that this disclosure will be thorough and complete, and will convey the full scope of the disclosure to one of ordinary skill in the art.

Hereinafter, the term “transmitter” and the term “receiver” may also be referred to as “transmitting node” and “receiving node”, respectively. The transmitter and the receiver may include, for example, customer devices such as a user terminal, and networking devices such as an access point and a router. A user terminal includes, for example, a smart phone, a smart television (TV), a personal computer (PC), a laptop computer and the like.

Hereinafter, the term “data segment” or “packet” may refer to a formatted block of data transmitted between a data transmitter and a data receiver. The “data segment” may be construed as the same as “data block” or “data segments” including a plurality of items of streaming data, or construed to include “data segments”.

Hereinafter, before describing an example of a method of generating signature information with respect to a data segment, a method of generating signature information based on a Merkle hash tree (MHT), and a method of verifying a validity of signature information generated based on an MHT will be described.

FIG. 1 illustrates an example of a method of generating signature information based on a MHT.

An MHT technique is an example of signature amortization methods that may be used to reduce a computational load caused by the generation and verification of signature information for data authentication. The illustrated example of MHT technique involves distributing a computational load caused due to the generation of signature information by generating signature information with respect to a predetermined number of data segments, rather than by generating signature information for each data segment for all data segments.

Referring to FIG. 1, an example of calculating a binary hash tree with respect to N data segments, and calculating signature information with respect to a root of the tree is illustrated. In this example, N is a predetermined number having a value equal to a power of 2. In FIG. 1, h denotes a hash operation, H denotes a hash value, and S denotes signature information. In addition, I denotes a concatenation operator.

A data segment transmitted to a receiver may include signature information with respect to a root hash value, and hash values of sibling nodes or a sub-tree to be used for calculating the root hash value in a tree.

For example, referring to FIG. 1, a packet with respect to data segment S₀ includes the data segment S₀ and includes H₁ denoting a hash value of S₁, H₂₃ denoting a hash value of H₂ and H₃, H₄₅₆₇ denoting a hash value of H₄₅ and H₆₇, and Signature (H₀₁₂₃₄₅₆₇) denoting signature information with respect to a root hash value.

In this MHT technique, because each packet that is transmitted to a receiver includes all information to be used for authenticating the packet itself, the packet is not negatively affected by a packet loss or a change in packet transfer order during the transfer.

A sequence of performing a verification using this MHT technique may be as follows.

The receiver may extract a root hash value by performing a signature verification operation with respect to signature information with respect to a data payload. The receiver may directly calculate a root hash value of an MHT, based on hash values, for example, H₁, H₂₃, and H₄₅₆₇, and a received data segment, for example, the data segment S₀. When the directly calculated root hash value is identical to the root hash value extracted through verification of the signature information, the receiver may determine that the corresponding packet is valid.

FIG. 2 illustrates an example of a method of verifying a validity of signature information generated based on an MHT.

In FIG. 2, an implicit authentication scheme uses an MHT technique in verification.

In response to a determination through a verification process that a packet including a data segment S₀ is valid, it may also be determined that hash values used for the verification, for example, H₁, H₂₃, and H₄₅₆₇, are valid. In response, the authenticated hash values may be stored in an authenticated hash table (AHT).

Subsequently, in response to receiving a packet including a data segment S₁, a receiver may search the AHT for a hash value H₁ corresponding to the data segment S₁.

In the event that the hash value H₁ corresponding to the data segment S₁ is present in the AHT, the receiver may skip the verification process and verify whether h(S₁) is identical to H₁ to verify whether the data segment S₁ is valid.

The method of generating and verifying signature information based on the MHT may reduce a number of times that the generation and verification of the signature information is performed, in comparison to a method in which a signature information operation is performed for each packet such as, for example, a per packet signature method. However, with this method, an operation load for generating the signature information remains the same. Accordingly, an operation load at a transmitter may be relatively large.

In addition, because the MHT technique may be performed based on a binary tree, the MHT technique may be less flexible in selecting a number of data segments constituting a block. For example, the number of data segments constituting the block may be increased to 2, 4, 8, 16, 32, 64, . . . , 2^(k). Accordingly, a tradeoff between a verification performance and a number of data segments to be buffered exists. In addition, in the event that the number of the data segments does not correspond to a power of 2, an efficiency in terms of a transmission rate and a computational load may be decreased because the MHT technique is based on a binary tree.

FIG. 3 is a flowchart that illustrates an example of a method of generating signature information with respect to a data segment by a data segment transmitter.

Referring to FIG. 3, in operation 310, the data segment transmitter, hereinafter referred to as the “transmitter”, constructs an MHT with respect to a predetermined number of data segments. The predetermined number of data segments may be k, and the value of k may correspond to a power of 2. In addition, log₂ k hash values of the MHT may be included. The data segments may be buffered to the transmitter.

A data packet may have a format of a data block, and may include a plurality of data segments.

For example, in operation 310, the transmitter may be configured to construct an MHT with respect to k data blocks. The transmitter may buffer the data segments.

In operation 330, the transmitter associates a root hash value of the MHT constructed in operation 310 with trapdoor hash values with respect to the data segments. For instance, the expression “associating a root hash value of the MHT with trapdoor hash values with respect to the data segments” may be construed to indicate that trapdoor hash values with respect to the data segments are calculated or processed based on a root hash value of the MHT. A method of associating the root hash value of the MHT with the trapdoor hash values with respect to the data segments by the transmitter will be described with reference to FIG. 8.

In operation 350, the transmitter associates a root hash value of the MHT and the trapdoor hash values with the data segments, and transmits hash values of the MHT and the trapdoor hash values to a receiver. The expression “associating a root hash value of the MHT and the trapdoor hash values with the data segments, and transmitting hash values of the MHT and the trapdoor hash values to a receiver” may be construed to indicate that trapdoor hash values and hash values of the MHT to be used for verifying a validity of a data segment are transmitted along with the corresponding data segment.

The hash values of the MHT, for example, witness information, may include information that is used by the receiver to reconstruct the MHT. The witness information may include at least one hash value of the MHT not directly associated with the data segments, in the MHT constructed in operation 310. The at least one hash value of the MHT not associated directly with the data segments may include at least one of hash values of an MHT of a sibling node and a sub-tree.

According to one example, by combining the concept of trapdoor hash function with MHT, a data authentication method that minimizes a computational load at the transmitter and receiver ends and is robust against packet losses and transmission errors may be provided.

For data authentication, the transmitter may construct an MHT with respect to data segments to be transmitted, and associate a root hash value of the MHT with a trapdoor hash function in order to generate the signature information for the data segments.

The transmitter may transmit to the receiver information to be used for reconstructing the root hash value of the MHT, and the receiver may selectively verify a validity of the signature information with respect to the data segments using the trapdoor hash function or an AHT.

FIG. 4 illustrates an example of a method of performing authentication based on a trapdoor hash function.

During a process of generating signature information for data authentication, a trapdoor hash function may be applied to reduce a computational load. According to a method of generating signature information, a single exponentiation, for example, (M)^(Y) mod N, N: 1024-bit, Y: 160-bit, may be performed. In a method of generating signature information based on the trapdoor hash function, however, a fewer number of multiplications may be performed.

According to one example, a method of generating and verifying signature information based on the trapdoor hash function may employ a digital signature algorithm (DSA).

Referring to FIG. 4, an authentication method based on the trapdoor hash function is illustrated.

A transmitter 410 calculates a trapdoor hash value with respect to a first data segment m₀, and transmits to a receiver 430 signature information t that may guarantee a validity of a base trapdoor hash value. The receiver 430 calculates the base trapdoor hash value α based on the data segment m₀ received from the transmitter 410, the trapdoor hash value with respect to the data segment m₀, and a public key value r₀.

By verifying the signature information t, the receiver 420 determines a validity of the calculated base trapdoor hash value α. The calculated base trapdoor hash value α may be used to verify a validity with respect to successively transferred data segment later.

The receiver 430 may verify the validity with respect to the successively transferred data segments by comparing the trapdoor hash value calculated from the packet received from the transmitter 410 to the base trapdoor hash value α.

The transmitter 410 calculates signature information r_(i), for example, a hash collision-inducing value, based on information on a secure private trapdoor hash key y₀ for a trapdoor hash value with respect to a data segment m_(i) to be identical to the base trapdoor hash value α. When the transmitter 410 transfers the data segment m_(i) and the hash collision-inducing value the receiver 430 calculates a trapdoor hash value with respect to the data segment m_(i) and the hash collision-inducing value r_(i), and compares the calculated trapdoor hash value to the base trapdoor hash value α to verify a validity of the data segment m_(i).

The foregoing process may be arranged as follows.

The transmitter 410 calculates and transmits <m₀, t, r₀>. In response to receiving <m₀, t, r₀>, the receiver 430 may calculate and store a base trapdoor hash value that may be used as a reference for determining a validity of a packet or a data segment to be transferred later, based on the received <m₀, t, r₀>.

The transmitter 410 may calculate and transfer the signature information r_(i), for example, the hash collision-inducing value, for a trapdoor hash value of a corresponding data segment m_(i) to be identical to the base trapdoor hash value, based on information on a secure private trapdoor hash key y₀ with respect to data segments to be transferred later.

The receiver 430 may calculate a trapdoor hash value, based on <m_(i), r_(i)> transferred from the transmitter 410 and a public hash key Y₀, and compare the calculated trapdoor hash value to a stored base trapdoor hash value to evaluate a validity of a data segment received from the transmitter 410.

The process described above may be expressed using a digital signature algorithm (DSA)-based electronic signature algorithm, as illustrated in Table 1 and Table 2.

TABLE 1 Initial segment generation 1. Choose an ephemeral private key k₀ ∈_(R)Z_(q)* and compute the corresponding ephemeral public key r₀ = g^(k) ⁰ ∈Z_(p)*. 2. Compute the trapdoor hash of m₀ as TH_(Y) ₀ (m₀, r₀) =

 mod q, where h_(m) ₀ = H(m₀∥Y₀), using its long term hash key Y₀. 3. Solve for t in the equation: t ≡ k₀ + xG(TH_(Y) ₀ (m₀, r₀)∥m₀∥r₀) mod q (this is the well-known DL-Schnorr [34] signature scheme). 4. Signature on m₀ is given by σ = 

 t, r₀ 

 . Initial segment verification 1. Look up the long-term hash key Y₀ of sender from a publicly available directory and store Y₀. Compute h_(m) ₀ = H(m₀∥Y₀). 2. Compute TH_(Y) ₀ (m₀, r₀) = 

 Y₀ ^(r) ⁰ mod q and h = G(TH_(Y) ₀ (m₀, r₀)∥m₀∥r₀). 3. Compute r′ = g^(t)X^(−h) mod q. If r′≠ r₀ mod q, output Invalid and abort. 4. Otherwise, output Valid and store TH_(Y) ₀ (m₀, r₀) in cache.

Table 1 includes an example of an algorithm for a method of generating and verifying signature information with respect to a first data segment in trapdoor hash function-based authentication.

Parameters <p, q, g, H, G> to be used in a DSA domain may be shared between a transmitter and a receiver. In this example, p denotes a 1024-bit prime, q denotes a 160-bit prime, qlp−1, g denotes an element of Zp* of which an order corresponds to q, and H and G denote hash functions. In addition, Zp* denotes a type of an integer set, ranging from 1 to p−1.

In <x, X>, x denotes a long-term private key of the transmitter, and may correspond to, for example, an element of Zp*. X denotes a long-term public key, and may correspond to, for example, g^(x) belonging to Zp*. The private key may be known only to the transmitter, and the public key may be shared by the receiver.

In <y₀, Y₀>, y₀ denotes a long-term private trapdoor hash key of the transmitter, and Y₀ denotes a public hash key. The trapdoor hash key may be known to the transmitter, and the public hash key may be made public to the receiver.

TABLE 2 Subsequent segment generation 1. Choose an ephemeral trapdoor key y_(i) ∈_(R)Z_(q)* and compute the corresponding ephemeral hash key Y_(i) = g^(h) ^(i) ∈ Z_(p)*. Store the pair (y_(i), Y_(i)). 2. Compute h_(m) _(i) = H(m_(i)∥Y_(i)) and using trapdoor key y₀ and ephemeral key y_(i), solve for r_(i), in the equation: r_(i) = y_(i) ^(−!) (h_(m) ₀ −h_(m) _(i) + y₀r₀) mod q. Subsequent segment verification 1. Retrieve TH_(Y) ₀ (m₀, r₀) from cache and compute h_(m) _(i) = H(m_(i)∥Y_(i)). 2. Compute TH_(Y) _(i) (m_(i), r_(i)) = 

 Y_(i) ^(r) ^(i) mod q. 3. Check whether TH_(Y) ₀ (m_(0,) r₀) = TH_(Y) _(i) (m_(i),r_(i)). If check fails, output Invalid 4. Otherwise, output Valid.

Table 2 includes an example of an algorithm for a method of generating and verifying signature information with respect to data segments subsequent to the first data segment in trapdoor hash function-based authentication.

Table 1 and Table 2 correspond to the process illustrated in FIG. 4 in which an actual DSA-based electronic signature algorithm is applied.

In Table 1, a DL-Schnorr signature scheme is employed to transfer a base trapdoor hash value safely.

In this example, TH_(Y0)(m₀, r₀) calculated in operation 2 of the signature information verification on a left side of Table 1 may correspond to the base trapdoor hash value, and a validity of the base trapdoor hash value may be verified through operation 3 on a right side.

In operation 2 of the signature information generation on the left side of Table 2, a hash collision-inducing value r_(i) enabling a trapdoor hash value with respect to a data segment m_(i) to be identical to the base trapdoor hash value may be calculated based on a secure private trapdoor hash key y₀, and public information r₀. Accordingly, signature information may be compared rapidly through performing several multiplications.

In operation 2 of the signature information verification of on a right side Table 2, a trapdoor hash value with respect to a data segment m_(i) may be calculated based on m_(i) and r_(i). In this instance, an exponentiation may be used.

In operation 3, by comparing the trapdoor hash value calculated in operation 2 to the base trapdoor hash value, a validity of the data segment m_(i) may be verified.

FIG. 5 illustrates an example of a method of verifying signature information with respect to a data segment that may be performed by a receiver.

Referring to FIG. 5, a sequence in which the receiver may verify signature information with respect to a data segment received from a transmitter is illustrated.

In operation 510, in response to receiving the data segment from the transmitter, the receiver calculates a hash value H(m_(i)) with respect to the data segment, for example, a data segment and searches an AHT to verify whether the hash value H(m_(i)) is stored in the AHT.

In the event that it is verified in operation 510 that the hash value H(m_(i)) is stored in the AHT, the receiver may complete the verification process with respect to the data segment m_(i). In this example, an amount of computation may be expressed by 1 H, and H may denote a computational cost used to perform a single hash function or algorithm.

Conversely, in the event that it is verified in operation 510 that the hash value H(m_(i)) is not stored in the AHT, the receiver reconstructs a root hash value of an MHT or a root hash value of a sub-tree, and searches the AHT to verify whether corresponding hash values, for example, the root hash value or the root hash value of the sub-tree, are stored in the AHT, in operation 520.

In the event that it is verified in operation 520 that the root hash value or the root hash value of the sub-tree is stored in the AHT, the receiver may complete the verification process with respect to the data segment m_(i). In this instance, the computational cost may be expressed by (log₂(k)+1) H. In this example, k denotes a number of data packets or data segments included in the identical MHT.

Conversely, in the event that it is verified in operation 520 that the corresponding hash values, for example, the root hash value or the root hash value of the sub-tree, is not stored in the AHT, the receiver performs verification with respect to a trapdoor hash value, in operation 530. In this instance, the computational cost may be expressed by 2.06X+(log₂(k)+2)H. In this example, X denotes an amount of computation of a Schnorr exponentiation having a 1024-bit base and a 160-bit exponent.

In the event that the verification with respect to the trapdoor hash value is performed successfully in operation 530, the receiver updates the AHT with respect to relevant hash values calculated during the verification, in operation 540.

Conversely, in the event that verification with respect to the trapdoor hash value fails in operation 530, the receiver discards relevant hash values, in operation 550.

The receiver may perform trapdoor verification with respect to a single data segment, and may perform verification with respect to remaining k−1 data segments by searching for a hash value stored in the AHT and performing comparison.

According to an example, with respect to data segments included in an identical MHT, by comparing a hash value included in the AHT to hash values of the MHT, rather than verifying a trapdoor hash value, an amount of computation to be performed in order to verify the trapdoor hash value may be reduced.

Hereinafter, a method of verifying signature information by the receiver will be described in detail with reference to FIGS. 6 and 7.

FIG. 6 illustrates an example of a method of verifying signature information with respect to a data segment that may be performed by a receiver.

Referring to FIG. 6, the receiver receives signature information with respect to a predetermined number of data segments transmitted from a transmitter, in operation 610.

In operation 620, the receiver constructs an MHT using witness information included in the signature information received in operation 610. The witness information may include trapdoor hash values and hash values of the MHT.

In order to verify a validity of the signature information, the receiver may construct an MHT using the witness information transmitted along with first data segment, and may determine a validity of the trapdoor hash values using a root hash value of the MHT.

The receiver may store, in an AHT, at least one of the root hash value of the MHT and the hash values of the MHT included in the signature information. According to an example, in response to verifying a validity of signature information with respect to a data segment, relevant hash values may be stored in the AHT to be used later for quick verification.

The receiver may verify the trapdoor hash values using the root hash value of the MHT constructed in operation 620. In operation 630, the receiver verifies a validity of the signature information by verifying the trapdoor hash values. A method of verifying a validity of the signature information by the receiver will be described in detail with reference to FIG. 7.

FIG. 7 illustrates an example of a method of verifying a validity of signature information in the method described with reference to FIG. 6.

FIG. 7 illustrates an example of a method of configuring an AHT through the method of FIG. 6 and vilifying a validity of signature information using the configured AHT.

Referring to FIG. 7, a receiver obtains at least one of hash values of an MHT and a root hash value of the MHT from signature information with respect to data segments received subsequently to a first data segment, in operation 710.

In operation 720, the receiver searches an AHT to verify whether at least one of the hash value of the MHT and the root hash value of the MHT obtained in operation 710 is stored in the AHT. In this example, the hash value of the MHT may include at least one of hash values of a sibling node and a sub-tree of the MHT.

In operation 730, the receiver verifies whether at least one of the hash value of the MHT and the root hash value of the MHT obtained in operation 710 is stored in the AHT.

In response to verifying in operation 730 that at least one of the hash value of the MHT and the root hash value of the MHT is stored in the AHT, the receiver determines that the signature information of the subsequently received data segments is valid, in operation 740. Accordingly, a validity of the signature information is verified.

Conversely, in response to verifying in operation 730 that at least one of the hash values of the MHT and the root hash value of the MHT is not stored in the AHT, the receiver determines a validity of a trapdoor hash value by verifying the trapdoor hash value with respect to the data segment and the root hash value of the MHT. If it is verified that the trapdoor hash value is valid, the receiver stores relevant hash values in the AHT, in operation 750. For example, the receiver may store the hash values of the MHT or the root hash value of the MHT.

FIG. 8 illustrates an example of transmitting four data segments using a method of generating and verifying signature information.

Referring to FIG. 8, an example in which a concept of an MHT is applied to generation and verification of signature information with respect to four data segments using a trapdoor hash function is illustrated.

In generation of signature information by constructing an MHT with respect to the four data segments, a root hash value of the MHT may be used to calculate trapdoor hash values, and in verification of the signature information, a root hash value may be calculated by reconstructing the MHT using a hash path of the MHT included in witness information and a data segment received from a transmitter.

A receiver may verify a validity of the received data segment using the calculated root hash value of the MHT for verification of the signature information. In this example, in response to determination that the signature information is valid during the verification process, the data segment, hash values received along with the data segment, and the calculated root hash value may be determined to be valid. In response, the receiver may record the corresponding hash values in an AHT.

The receiver may verify a validity of a data segment included in the identical MHT, by verifying a validity of signature information through determining whether a hash value of the data segment is present in the AHT, rather than performing verification of the signature information with respect to trapdoor hash values.

For example, the transmitter may transmit four data segments m₁, m₂, m₃, and m₄ to the receiver. The transmitter may transmit signature information with respect to each corresponding data segment along with the corresponding data segment.

The transmitter may construct an MHT with respect to the four data segments m₁, m₂, m₃, and m₄, and calculate trapdoor hash values by performing a trapdoor hash operation with respect to the data segments m₁, m₂, m₃, and m₄ using a root hash value of the MHT. The root hash value of the MHT may be reflected in the trapdoor hash values.

In this example, a hash collision-inducing value r_(i) enabling a trapdoor hash value with respect to a data segment m_(i) to be identical to a base trapdoor hash value may be calculated by Equation 1. r ₁ =y ₁ ⁻¹(h _(m) ₀ −h _(m) ₁ _(,h) _(1,2,3,4) +y ₀ r ₀) mod q, r ₂ =y ₂ ⁻¹(h _(m) ₀ −h _(m) ₂ _(,h) _(1,2,3,4) +y ₀ r ₀) mod q, r ₃ =y ₃ ⁻¹(h _(m) ₀ −h _(m) ₃ _(,h) _(1,2,3,4) +y ₀ r ₀) mod q, r ₄ =y ₄ ⁻¹(h _(m) ₀ −h _(m) ₄ _(,h) _(1,2,3,4) +y ₀ r ₀) mod q where h _(m) _(i) _(,h) _(j,k,l,m) =H(m _(i) ∥h _(j,k,l,m) ∥Y ₀)  [Equation 1]

In Equation 1, y₀ denotes a long-term private trapdoor hash key, and r₀ denotes a public hash key value. Y₀ denotes a public hash key.

The long-term private trapdoor hash key of the transmitter is to be known by the transmitter, and the public hash key may be made public to the receiver.

In Equation 1, q denotes a 160-bit prime, and H denotes a hash function.

The transmitter may transmit, to the receiver, the data segment m_(i), hash values h₂ and h₃₄ of the MHT, and the hash collision-inducing value r₁. The hash values h₂ and h₃₄ of the MHT may be used for reconstructing the MHT by the receiver receiving the corresponding information. The hash values h₂ and h₃₄ of the MHT may correspond to at least one of hash values of a sibling node or a sub-tree not associated directly with the segment m₁ in the MHT.

According to an example described above, signature information may be generated by associating multiple data segments, whereby implicit authentication may be applied for verification of the signature information.

The transmitter may transmit, to the receiver, the data segment m₁ and signature information (h₂, h₃₄, r₁) with respect to the data segment m₁.

The transmitter may transmit, to the receiver, each data segment and piece of signature information of the corresponding data segment in a form of (m₂, h₁, h₃₄, r₂), (m₃, h₄, h₁₂, r₃), and (m₄, h₃, h₁₂, r₄).

An operation of the receiver corresponding to the operation of the transmitter described above may be described as follows.

The receiver receiving the signature information (m₁, h₂, h₃₄, r₁) may calculate a root hash value of the MHT using witness information included in the signature information. The witness information may include hash values of the MHT. The receiver may calculate the root hash value of the MHT based on the received data segment and the hash values included in the witness information, and reconstruct the MHT using the calculated root hash value. In this instance, the MHT reconstructed by the receiver may be represented as illustrated in a lower portion of FIG. 8.

The receiver may verify whether the current trapdoor hash value is identical to a base trapdoor hash value. In this example, the receiver may perform verification with respect to values expressed by Equation 2. TH _(Y) ₀ (m ₀ ,r ₀)?=TH _(Y) ₁ (m ₁ ,h′ ₁₂₃₄ ,r ₁) TH _(Y) ₁ (m ₁ ,H _(1,2,3,4) ,r ₁)=g ^(h) ^(m1,h1,2,3,4) Y ₁ ^(r) ¹ mod q=g ^(h) ^(m1,h1,2,3,4) g ^(y) ¹ ^(r) ¹ mod q=g ^(h) ^(m1,h1,2,3,4) g ^(y) ¹ ^(y) ¹ ⁻¹ (h _(m) ₀ −h _(m) ₁ _(,H) _(1,2,3,4) +y ₀ r ₀ ⁾ mod q=g ^(h) ^(m1,h1,2,3,4) g ^((h) ^(m0) ^(−h) ^(m1,H1,2,3,4) ^(+y) ⁰ ^(r) ⁰ ⁾ mod q=g ^((h) ^(m0) ^(+y) ⁰ ^(r) ⁰ ⁾ mod q=TH _(Y) ₀ (m ₀ ,r ₀)  [Equation 2]

In Equation 2, TH_(Y) ₀ (m₀, r⁰) denotes a base trapdoor hash value, TH_(Y) ₁ (m₁, h′₁₂₃₄ , r ₁) denotes trapdoor hash values of m₁ reconstructed by the receiver.

In Equation 2, g denotes an element of Zp* of which an order corresponds to q, r₁ denotes a hash collision-inducing value, h_(m) ₀ denotes H(m₀∥Y₀), and h_(m) ₁ _(,H) _(1,2,3,4) denotes H(m₁∥h_(1,2,3,4)∥Y₀).

In addition, y₀ denotes a long-term private trapdoor hash key, and r₀ denotes a public hash key value. Y₀ denotes a public hash key. Further, y₁ denotes an ephemeral trapdoor hash key generated by the transmitter, and Y₁ ^(r) ¹ denotes a result of exponentiation with a base of an ephemeral hash key Y₁ corresponding to the ephemeral trapdoor hash key and an exponent of r₁, which may also expressed by (Y₁)^(r) ¹ =(g^(y) ¹ )^(r) ¹ =(g)^(y) ¹ ^(r) ¹ .

In response to the verification with respect to the hash values h₂, h₃₄, and h₁₂₃₄ being completed through Equation 2, the receiver may store the hash values h₂, h₃₄, and h₁₂₃₄ in the AHT.

The receiver receiving the signature information (m₂, h₁, h₃₄, r₂) from the transmitter may search for a value with respect to H(m₂) from the AHT and compare the received signature information to a found value.

The receiver may receive the signature information (m₃, h₄, h₁₂, r₃), and search for a value with respect to H(m₃) from the AHT. When the value with respect to H(m₃) is absent in the AHT, the receiver may calculate a root hash value, for example, using H(H(m₃)∥h₄) or H(H(h₁₂∥H(m₃)∥h₄)) to verify a validity of the signature information. h₄ and h₁₂ of which the validity is verified may be stored in the AHT.

The receiver receiving the signature information (m₄, h₃, h₁₂, r₄) may search for a value with respect to H(m₄) from the AHT. When a corresponding value is present, a validity of the received signature information may be verified.

According to an example, when a number of segments to be transmitted corresponds to a power of “2”, for example, 2, 4, 8, 16, . . . , 2^(k), an amount of authentication information to be transmitted may be reduced from an O(k)× hash size to an O(log 2(k)× hash size, by applying a concept of an MHT.

In order to apply implicit authentication to verification of signature information according to an embodiment, an association between data segments may be generated to transmit hash values. Accordingly, an amount of data to be transmitted additionally may increase as a number of data segments increases. Depending on an embodiment, an amount of information to be transmitted may be reduced by probabilistically selecting and transmitting a portion of hash values of related data segments, rather than transmitting all hash values of the related segments.

FIG. 9 illustrates an example in which eight data segments are transmitted by using a method of generating and verifying signature information.

Referring to FIG. 9, an MHT may be applied to the generation and verification of signature information with respect to eight segments using a trapdoor hash function.

When a transmitter generates signature information with respect to eight data segments m₁, m₂, m₃, m₄, m₅, m₆, m₇, and m₈, an MHT may be constructed, as illustrated in FIG. 9.

The transmitter may construct the MHT with respect to the eight data segments m₁, m₂, m₃, m₄, m₅, m₆, m₇, and m₈, and may obtain trapdoor hash values by applying a root hash value of the MHT to a trapdoor hash operation with respect to the segments.

For example, the transmitter may transmit signature information with respect to the data segment m₁ to the receiver.

The transmitter may transmit, to the receiver, the data segment m₁ and hash values of the MHT, such as hash values h₂, h₃₄, and h₅₆₇₈ of a sibling node or a sub-tree of the MHT and a hash collision-inducing value r₁. In this example, the hash values h₂, h₃₄, and h₅₆₇₈ of the MHT may be used for reconstructing the MHT by the receiver.

According to the example described above, signature information may be generated by associating multiple data segments, whereby implicit authentication may be applied to verification of the signature information.

The transmitter may transmit, to the receiver, the data segment m₁ and signature information with respect to the data segment m₁ in a form of (m₁, h₂, h₃₄, h₅₆₇₈, r₁).

The transmitter may transmit, to the receiver, data segments and signature information with respect to each corresponding data segment in a form of (m₂, h₁, h₃₄, h₅₆₇₈, r₂), (m₃, h₄, h₁₂, h₅₆₇₈, r₃), (m₄, h₃, h₁₂, h₅₆₇₈, r₄), (m₅, h₆, h₇₈, h₁₂₃₄, r₅), (m₆, h₅, h₇₈, h₁₂₃₄, r₆), (m₇, h₈, h₅₆, h₁₂₃₄, r₇), and (m₈, h₇, h₅₆, h₁₂₃₄, r₄).

An operation of the receiver corresponding to the operation of the transmitter described above is described below.

The receiver receiving (m₁, h₂, h₃₄, h₅₆₇₈, r₁) including the data segment m₁ and the signature information with respect to the data segment m₁ may calculate a root hash value of the MHT based on witness information included in the signature information, as described with reference to FIG. 8. The receiver may calculate the root hash value of the MHT based on the trapdoor hash value, and reconstruct the MHT using the calculated root hash value.

The receiver may perform verification with respect to the trapdoor hash value using a scheme expressed by Equation 2.

When it is determined that the verification of the signature information with respect to the data segment m₁ is completed, the verification with respect to the hash values h₂, h₃₄, and h₅₆₇₈ may be completed. The receiver may store the verified hash values h₂, h₃₄, and h₅₆₇₈ in the AHT.

The receiver that received the signature information (m₂, h₁, h₃₄, h₅₆₇₈, r₂) from the transmitter may search for a value with respect to H(m₂) from the AHT and compare the received signature information to a found value. As described with reference to FIG. 8, the receiver may receive signature information with respect to each data segment, and may verify a validity of the received signature information using a scheme of searching for hash values corresponding to the data segment from the AHT.

FIG. 10 illustrates an example of a data segment transmitter 1000.

Referring to FIG. 10, the data segment transmitter 1000 includes an MHT constructor 1010, a trapdoor operation unit 1030, and a signature information generator 1050.

The MHT constructor 1010 may construct an MHT with a predetermined number of data segments. Information to be transmitted per data segment may include at least one piece of hash information of MHT and a single trapdoor hash value. For example, in an example in which the size of the MHT corresponds to four (4), two (2) pieces of hash information and a single trapdoor hash value may be included in the MHT.

The trapdoor operation unit 1030 may associate a root hash value of the MHT constructed by the MHT constructor 1010 with a hash collision-inducing value with respect to the data segments.

The signature information generator 1050 may associate a hash value of the MHT and the hash collision-inducing value with the data segments, and may transmit the hash value of the MHT and the hash collision-inducing value to a receiver. The hash value of the MHT may include information to be used for reconstructing the MHT by the receiver. The hash value of the MHT may include at least one hash value of the MHT of a sibling node or a sub-tree not associated directly with the data segments, in the constructed MHT.

FIG. 11 illustrates an example of a data segment receiver 1100.

Referring to FIG. 11, the data segment receiver 1100 includes a data receiving unit 1110, a tree constructor 1130, and a signature information verifier 1150.

The data receiving unit 1110 may receive signature information with respect to a predetermined number of data segments transmitted by a transmitter.

The tree constructor 1130 may construct an MHT using witness information included in the signature information received by the data receiving unit 1110.

The tree constructor 1130 may calculate a root hash value of the MHT using the witness information included in the signature information. The witness information may include a hash value of the MHT so that the data segment receiver 1100 may reconstruct the MHT using hash values of the received data segments.

The signature information verifier 1150 may verify a validity of the signature information by verifying the trapdoor hash values using the root hash value of the MHT constructed by the tree constructor 1130. The signature information verifier 1150 may include an AHT 1155 configured to store at least one of the root hash value of the MHT and the hash values of the MHT included in the signature information.

The signature information verifier 1150 may obtain at least one of the hash values of the MHT and the root hash value of the MHT from signature information of data segments received subsequently to a first data segment. The signature information verifier 1150 may search the AHT 1155 to verify whether at least one of the obtained hash value of the MHT and the obtained root hash value of the MHT is stored in the AHT 1155.

In the event at least one of the obtained hash value of the MHT and the obtained root hash value of the MHT is stored in the AHT 155, the signature information verifier 1150 may determine that the signature information of the subsequently received data segments is valid. Based on the determination that the signature information is valid, the signature information verifier 1150 may reconstruct the MHT using the hash value of the MHT included in the signature information, such as the witness information, for example.

In this example, a computational load of a transmitter and a receiver required for authenticating contents transferred in a content centric network (CCN) environment, a content delivery network (CDN) environment, and/or a peer-to-peer (P2P) network environment may be reduced, and data may be transmitted safely via channels through which a large loss of data is expected.

By improving a computational load at a transmitting end, a number of clients to be provided with a service by a single server may be increased. In addition, by reducing a computational load caused by generation of signature information, contents may be generated and distributed safely and rapidly.

The examples of methods described above may be recorded in non-transitory computer-readable media including program instructions to implement various operations embodied by a computer. The media may also include, alone or in combination with the program instructions, data files, data structures, and the like. Examples of non-transitory computer-readable media include magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD ROM discs and DVDs; magneto-optical media such as optical discs; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory (ROM), random access memory (RAM), flash memory, and the like. Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter. The described hardware devices may be configured to act as one or more software modules in order to perform the operations of the above-described embodiments, or vice versa.

While this disclosure includes specific examples, it will be apparent to one of ordinary skill in the art that various changes in form and details may be made in these examples without departing from the spirit and scope of the claims and their equivalents. The examples described herein are to be considered in a descriptive sense only, and not for purposes of limitation. Descriptions of features or aspects in each example are to be considered as being applicable to similar features or aspects in other examples. Suitable results may be achieved if the described techniques are performed in a different order, and/or if components in a described system, architecture, device, or circuit are combined in a different manner and/or replaced or supplemented by other components or their equivalents. Therefore, the scope of the disclosure is defined not by the detailed description, but by the claims and their equivalents, and all variations within the scope of the claims and their equivalents are to be construed as being included in the disclosure. 

What is claimed is:
 1. A method of generating signature information, the method comprising: in a transmitter: constructing a hash tree with respect to a predetermined number of data segments; associating a root hash value of the hash tree with trapdoor hash values with respect to the data segments; and associating hash values of the hash tree and the trapdoor hash values with the data segments to generate the signature information and transmitting the hash values of the hash tree and the trapdoor hash values to a receiver, wherein a validity of the signature information is verified based on whether at least one of the root hash values of the hash tree and a hash value of the hash tree is stored in an authenticated hash table (AHT), and the method reduces computational load during the generation of signature information.
 2. The method of claim 1, wherein the hash values of the hash tree are included in witness information, and the receiver uses the transmitted hash values of the hash tree in reconstructing the hash tree.
 3. The method of claim 1, wherein the hash values of the hash tree comprise at least one hash value of the hash tree not associated directly with the data segments, in the constructed hash tree.
 4. The method of claim 1, wherein: the number of the data segments, k, has a value corresponding to a power of 2, and a number of hash values included in the hash tree corresponds to log2 k.
 5. The method of claim 1, further comprising: buffering the data segments.
 6. A method of verifying signature information, the method comprising: receiving signature information with respect to a predetermined number of data segments from a transmitter; constructing a hash tree based on the signature information; and verifying a validity of the signature information, by verifying trapdoor hash values in the transmitter using a root hash value of the constructed hash tree, wherein the validity of the signature information is verified based on whether at least one of the root hash values of the hash tree and a hash value of the hash tree is stored in an authenticated hash table (AHT), and the method reduces computational load during the verification of signature information.
 7. The method of claim 6, wherein the constructing of the hash tree comprises constructing a Merkle hash tree (MHT) using witness information included in the signature information.
 8. The method of claim 6, wherein the verifying of the signature information comprises: obtaining at least one of the hash value of the hash tree and the root hash value of the hash tree from signature information of subsequently received data segments; searching the AHT to verify whether at least one of the obtained hash value of the hash tree and the obtained root hash value of the hash tree is stored in the AHT; and in response to at least one of the obtained hash value of the hash tree and the obtained root hash value of the hash tree being stored in the AHT, determining that the signature information of the subsequently received data segments is valid.
 9. The method of claim 8, further comprising: in response to neither the obtained hash value of the hash tree nor the obtained root hash value of the hash tree being stored in the AHT, storing, in the AHT, at least one of the hash value of the hash tree and the root hash value of the hash tree.
 10. The method of claim 7, wherein the witness information comprises the hash value of the MHT.
 11. A non-transitory computer-readable medium having stored thereon a plurality of programming instructions which, when executed by one of more computing devices, causes the one or more computing devices to perform action comprising: receiving signature information with respect to a predetermined number of data segments from a transmitter; constructing a hash tree based on the signature information; and verifying a validity of the signature information, by verifying trapdoor hash values in the transmitter, using a root hash value of the constructed hash tree, wherein the validity of the signature information is verified based on whether at least one of the root hash values of the hash tree and a hash value of the hash tree is stored in an authenticated hash table (AHT), and the programming instructions reduce computational load during the verification of signature information.
 12. A data segment apparatus, comprising: a transmitter comprising a processor executing instructions to, construct a hash tree with respect to a predetermined number of data segments; associate a root hash value of the hash tree with trapdoor hash values with respect to the data segments; and associate hash values of the hash tree and the trapdoor hash values with the data segments, thereby generating the signature information, and transmitting the hash values of the hash tree and the trapdoor hash values to a receiver, wherein a validity of the signature information is verified based on whether at least one of the root hash values of the hash tree and a hash value of the hash tree are stored in an authenticated hash table (AHT), and the data segment apparatus reduces computational load during verification of the signature information.
 13. The data segment apparatus of claim 12, wherein the hash values of the hash tree are used for reconstructing the hash tree by the receiver, and the hash values are included in witness information.
 14. The data segment apparatus of claim 12, wherein the hash values of the hash tree comprise at least one hash value of the hash tree not associated directly with the data segments, in the constructed hash tree.
 15. A data segment apparatus, comprising: a receiver comprising a processor executing instructions to, receive signature information with respect to a predetermined number of data segments; construct a hash tree based on the signature information; and verify a validity of the signature information by verifying trapdoor hash values using a root hash value of the constructed hash tree, wherein the validity of the signature information is verified based on whether at least one of the root hash values of the hash tree and a hash value of the hash tree are stored in an authenticated hash table (AHT), and the data segment apparatus reduces computational load during verification of the signature information.
 16. The data segment apparatus of claim 15, wherein the tree constructor is configured to construct a Merkle hash tree (MHT) using witness information included in the signature information.
 17. The data segment apparatus of claim 15, wherein the signature information verifier comprises: an authenticated hash table (AHT) configured to record at least one of the root hash value of the hash tree and hash values of the hash tree included in the signature information.
 18. The data segment apparatus of claim 15, wherein the signature information verifier is configured to: obtain at least one of the hash values of the hash tree and the root hash value of the hash tree from signature information of subsequently received data segments, search the AHT to verify whether at least one of the obtained hash values of the hash tree and the obtained root hash value of the hash tree is stored in the AHT, and, in response to at least one of the obtained hash values of the hash tree and the obtained root hash value of the hash tree being stored in the AHT, determine that the signature information of the subsequently received data segments is valid.
 19. The data segment apparatus of claim 16, wherein the witness information comprises a hash value of the MHT.
 20. An apparatus for data authentication, comprising: a processor executing instructions to, receive signature information with respect to a predetermined number of data segments, the signature information comprising information for constructing a hash tree associated with the data segments; and verify signature information comprising an authenticated hash table (AHT) stored in a memory, by verifying trapdoor hash values using a root hash value of the constructed hash tree, wherein a hash value or a root hash value associated with the signature information is obtained when verifying the signature information, the AHT is searched to verify whether either the obtained hash value or the obtained root hash value is stored in the AHT, and a determination is made whether the signature information of the data segments is valid in response to either the obtained hash value or the obtained root hash value being stored in the AHT, and the apparatus for data authentication reduces computational load during verification of the signature information.
 21. The apparatus of claim 20, wherein the signature information verifier is configured to, in response to neither the obtained hash value nor the obtained root hash value being stored in the AHT, store the obtained hash value or the obtained root hash value in the AHT. 